7
תגובות
אולי לא כתבתי נכון?

אני מנסה לקרוא נתונים מ-2 טבלאות במסד וזה פשוט לא מציג כלום.

עריכה: (זה מציג אבל יש בעיה יותר מורכבת שזה מציג לי את הנתון האחרון 16 פעם ולא מציג את ה- 16 האחרונים)

<?PHP
$link = mysql_connect(CON_SERVER, CON_USERNAME, CON_PASSWORD)or die(mysql_error());
mysql_select_db(CON_DATABASE) or die(mysql_error());
mysql_set_charset("utf8",$link);
  $query = mysql_query("SELECT *
  FROM "
.CON_PREFIX."Pack, ".CON_PREFIX."Screen
  WHERE ID
  ORDER BY Time DESC
LIMIT 0,16"
);
     
  while($p3=mysql_fetch_array($query))
  {
?>

7 תשובות

avatar ענה intval ב 09 למאי 2015 #

מה הכוונה ב
WHERE ID
לשלוף את כל השורות שבהם האידי : ???

select * from Pack, Screen
where Pack.ID = Screen.ID
order by Pack.Time DESC
LIMIT 0,16

avatar ענה itzik ב 10 למאי 2015 #

אלכס התכוונתי שזה מורכב

כי אני רוצה לשלוף מטבלת Pack את ה- 16 נתונים אחרונים ומטבלת Screen את ה- 16 נתונים אחרונים.

בטבלת Pack המספור הוא תחת ID ובטבלת Screen המספור של ה ID שתואם לטבלת Pack הינו PID

avatar ענה itzik ב 10 למאי 2015 #

אני ישלח לך תמונות שתבין יותר טוב.

זה טבלת Packages



זה טבלת ScreenShots



טעיתי ב- WHERE התכוונתי לשים בו Stat` = '1' AND Depiction != ''

avatar ענה intval ב 10 למאי 2015 #

משהו כזה אמור לעבוד

select * from Packages, ScreenShots
where ScreenShots.PID = Packages.Id
Order by packages.id desc
limit 16


ואם אתה צריך רק את הסריןשוט האחרון של כל חבילה ולא את כולם, אז משהו בסגנון
select * from Packages, ScreenShots
where ScreenShots.ID = (SELECT Max(ScreenShots.ID) FROM ScreenShots WHERE ScreenShots.PID = Packages.ID)
Order by Packages.ID desc
limit 16

avatar ענה itzik ב 10 למאי 2015 #

אלכס הקוד עובד מצויין וראיתי היום סגנון של הקוד הזה ופעלתי בסגנון שלו , יש רק בעיה קטנה (וגם עם הקוד שהבאת הבעיה חוזרת).

זה מציג את כל יישות ID שנמצא בטבלה ScreenShots, האם אפשרי לעשות שזה יציג רק תמונה אחת מ כל יישות PID.



בתמונה למטה מסומן השדות PID שהוא חוזר עליהם ואין צורך שהם יחזרו מספיק שהוא יציג כל PID פעם אחת.

avatar ענה Splash ב 10 למאי 2015 #

@intval השאילתה השנייה ממש לא יעילה,הרבה יותר מהיר יהיה להשתמש ב join מאשר לבצע תת שאילתה עבור כל שורה (17 שאילתות). כנ"ל לגבי הראשונה אבל בשנייה זה הרבה יותר קריטי.

ד.א אלכס החיבור באמצעות google לא עובד יותר ודורש שחזור סיסמא על מנת להתחבר.בנוסף הכתובת לשחזור סיסמא אינה תיקנית [הדומיין מופיע פעמיים]

@itzik שימוש ב group by יפתור לך את הבעיה.

avatar ענה itzik ב 11 למאי 2015 #

@Splash תודה רבה וגם ל- @intval (אלכס) תודה רבה עובד מצויין